package com.chinatechstar.file.converter;

import com.chinatechstar.file.dto.SysFileHistoryDTO;
import com.chinatechstar.file.entity.SysFile;
import com.chinatechstar.file.entity.SysFileHistory;
import org.mapstruct.Mapper;
import org.mapstruct.MappingTarget;
import org.mapstruct.factory.Mappers;

@Mapper
public interface SysFileHistoryConverter {
    SysFileHistoryConverter INSTANCE = Mappers.getMapper(SysFileHistoryConverter.class);

    /**
     * entity 转 dto
     *
     * @param entity entity
     * @return dto
     */
    SysFileHistoryDTO map(SysFile entity);

    /**
     * dto 转 entity
     *
     * @param dto dto
     * @return entity
     */
    SysFile map(SysFileHistoryDTO dto);


    /**
     * dto 转 entity
     *
     * @param dto dto
     * @return entity
     */
    SysFileHistory mapToHistory(SysFileHistoryDTO dto);

    /**
     * 根据 dto 更新 entity
     *
     * @param dto    dto
     * @param entity entity
     */
    void map(SysFileHistoryDTO dto, @MappingTarget SysFile entity);

    /**
     * 根据 entity 更新 dto
     *
     * @param entity entity
     * @param dto    dto
     */
    void map(SysFile entity, @MappingTarget SysFileHistoryDTO dto);
}
